package singleton.type2;

/**
 * @author 龙超
 * @date 2020/7/1 15:14
 * @Description 静态代码块的饿汉模式
 */
public class Singleton2 {
    public static void main(String[] args) {
        Singleton instance = Singleton.getInstance();
        Singleton instance1 = Singleton.getInstance();
        System.out.println(instance == instance1);//true
        System.out.println(instance.hashCode());
        System.out.println(instance1.hashCode());
    }
}

/**
 * 方法二：使用静态代码块的饿汉模式
 */
class Singleton {
    //1、私有化构造方法
    private Singleton() {
    }
    //2、定义常量
    private final static Singleton instance;

    //3、初始化常量
    static {
        instance = new Singleton();
    }
    //4、提供单例返回
    public static Singleton getInstance() {
        return instance;
    }
}